package com.starbaba.weixin.dao;

import com.starbaba.weixin.model.*;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author Yukinomiu
 * @version 1.0
 */
public interface WeixinQRDao {

    List<WeixinQRActivityVO> getList(@Param("params") Map<String, Object> params);

    Integer getCount(@Param("params") Map<String, Object> params);

    List<WeixinQRRecordVO> getRecordList(@Param("params") Map<String, Object> params);

    Integer getRecordCount(@Param("params") Map<String, Object> params);

    List<WeixinQRCustomerVO> getCustomerList(@Param("params") Map<String, Object> params);

    Integer getCustomerCount(@Param("params") Map<String, Object> params);

    List<CustomerChannel> getCustomerChannels(@Param("userId") String userId);

    void changeCouponCodeChannel(@Param("params") Map<String, Object> params);

    void changeRecordChannel(@Param("params") Map<String, Object> params);

    Set<String> getAllChannels();

    Set<String> getCodeChannels();

    Integer getRedpackCount(@Param("params") Map<String, Object> params);

    List<WeixinRedpackRecord> getRedpackList(@Param("params") Map<String, Object> params);

    Integer getRedpackStatCount(@Param("params") Map<String, Object> params);

    List<WeixinRedpackStat> getRedpackStatList(@Param("params") Map<String, Object> params);

    Set<String> getAllActivityNames();

    List<WeixinActivityRedpackListVO> getRedpackActivityRecord(@Param("params") Map<String, Object> params);

    Integer getRedpackActivityRecordCount(@Param("params") Map<String, Object> params);

	Integer getWeixinCount(@Param("params") Map<String, Object> params);
}
